// pages/login/login.js
import { baseUrl } from '../../utils/request'
import {encryptData  } from '../../tools/encrypt'
import store from '../../utils/store';
Page({
  data: {
    loginParams: {
      loginName: '',
      password: '',
      captchaCode: ''
    },
    showUsernameError: false, // 用户名错误提示显示标记
    showPasswordError: false, // 密码错误提示显示标记
    showCaptchaError: false, // 验证码错误提示显示标记
    captchaCode: {
      captchaUuid: '',
      captchaText: '',
      captchaBase64Image: '',
      expireSeconds: ''
    },
    captchaText: ''
  },
  async loginEvent() {
    let hasError = false;
    // 用户名非空校验
    if (!this.data.loginParams.loginName.trim()) {
      this.setData({
        showUsernameError: true
      });
      hasError = true;
    }
    // 密码非空校验
    if (!this.data.loginParams.password.trim()) {
      this.setData({
        showPasswordError: true
      });
      hasError = true;
    }
    // 验证码非空校验
    if (!this.data.loginParams.captchaCode.trim()) {
      this.setData({
        showCaptchaError: true
      });
      hasError = true;
    }
    // 若有错误，不执行后续登录操作
    if (hasError) {
      return;
    }
    // 所有字段都不为空，执行登录逻辑（示例：调用登录接口）
    wx.showToast({
      title: '登录中...',
      icon: 'loading'
    });
    let loginParams = { ...this.data.loginParams, ...this.data.captchaCode, loginDevice: 5}
    console.log(loginParams)
    loginParams.password = encryptData(loginParams.password)
    console.log(loginParams, 'loginParams....')
    wx.request({
      url: baseUrl + "/login",
      method: "POST",
      data: loginParams,
      success(res) {
        if(res && res.data && res.data.ok) {
          wx.setStorageSync('token', res.data.data.token)
          store.setUserInfo(res.data.data)
          console.log(res.data.data.token, 'res.data.data.token')
          wx.navigateTo({
            url: '/loginPage/guide/guide?employeeId='+res.data.data.employeeId
          })
        } else {
          wx.showToast({
            title: res && res.data && res.data.msg,
            icon: 'none'
          })
        }
      },
      fail(err) {
        wx.showToast({
          title: '网络错误，请稍后再试',
          icon: 'none'
        })
      }
    })
  },  
  getCode() {
    // 获取验证码
    let that = this
    wx.request({
      url: baseUrl + "/login/getCaptcha",
      method: "GET",
      success(res) {
        console.log(res)
        if(res.statusCode == 200) {
          that.setData({
            captchaCode: res.data.data
          })
          console.log(that.data.captchaCode, 'captchaCode.....')
        }
      },
      fail(err) {
        wx.showToast({
          title: '网络错误，请稍后再试',
          icon: 'none'
        })
      }
    })
  },
  getUsername(e) {
    this.setData({
      'loginParams.loginName': e.detail.value,
      showUsernameError: false // 输入时隐藏错误提示
    });
  },
  getPassword(e) {
    this.setData({
      'loginParams.password': e.detail.value,
      showPasswordError: false // 输入时隐藏错误提示
    });
  },
  getCaptchaInput(e) {
    this.setData({
      'loginParams.captchaCode': e.detail.value,
      showCaptchaError: false // 输入时隐藏错误提示
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getCode()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})